﻿<?xml version="1.0" encoding="utf-8" ?>
<Actions xmlns="http://schemas.microsoft.com/pag/gax-core"
          CoordinatorServiceType="ActionCoordinatorWeb">

  <!-- Add Assembly Version file -->
  <Action Name="AddAssemblyVersionAction" Type="ProjectBase.Guidance.Actions.AddAssemblyVersionAction, ProjectBase.Guidance">
  </Action>

  <!-- copy assemblies -->
  <Action Name="CopySolutionFolders" Type="ProjectBase.Guidance.Actions.CopySolutionFolders, ProjectBase.Guidance">
  </Action>

  <!-- Add Nuget import element -->
  <Action Name="AddNugetImportAction" Type="ProjectBase.Guidance.Actions.AddNugetImportAction, ProjectBase.Guidance">
  </Action>

  <!-- Create Project names -->
  <!-- ProjectBase names -->
  <Action Name="GetProjectBaseCore" Type="Microsoft.Practices.RecipeFramework.Library.Actions.GetProjectAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ProjectName" RecipeArgument="ProjectBaseCore" />
    <Output Name="Project" />
  </Action>
  <Action Name="GetProjectBaseData" Type="Microsoft.Practices.RecipeFramework.Library.Actions.GetProjectAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ProjectName" RecipeArgument="ProjectBaseData" />
    <Output Name="Project" />
  </Action>
  <Action Name="GetProjectBaseMvc" Type="Microsoft.Practices.RecipeFramework.Library.Actions.GetProjectAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ProjectName" RecipeArgument="ProjectBaseMvc" />
    <Output Name="Project" />
  </Action>
  <Action Name="GetProjectBaseTools" Type="Microsoft.Practices.RecipeFramework.Library.Actions.GetProjectAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ProjectName" RecipeArgument="ProjectBaseTools" />
    <Output Name="Project" />
  </Action>

  <!-- Project names -->
  <Action Name="GetProjectEntity" Type="Microsoft.Practices.RecipeFramework.Library.Actions.GetProjectAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ProjectName" RecipeArgument="ProjectEntity" />
    <Output Name="Project" />
  </Action>
  <Action Name="GetProjectCommon" Type="Microsoft.Practices.RecipeFramework.Library.Actions.GetProjectAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ProjectName" RecipeArgument="ProjectCommon" />
    <Output Name="Project" />
  </Action>
  <Action Name="GetProjectData" Type="Microsoft.Practices.RecipeFramework.Library.Actions.GetProjectAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ProjectName" RecipeArgument="ProjectData" />
    <Output Name="Project" />
  </Action>
  <Action Name="GetProjectBusiness" Type="Microsoft.Practices.RecipeFramework.Library.Actions.GetProjectAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ProjectName" RecipeArgument="ProjectBusiness" />
    <Output Name="Project" />
  </Action>

  <Action Name="GetProjectAOP" Type="Microsoft.Practices.RecipeFramework.Library.Actions.GetProjectAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ProjectName" RecipeArgument="ProjectAOP" />
    <Output Name="Project" />
  </Action>

  <Action Name="GetProjectRestApi" Type="Microsoft.Practices.RecipeFramework.Library.Actions.GetProjectAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ProjectName" RecipeArgument="ProjectRestApi" />
    <Output Name="Project" />
  </Action>

  <Action Name="GetProjectMvc" Type="Microsoft.Practices.RecipeFramework.Library.Actions.GetProjectAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ProjectName" RecipeArgument="ProjectMvc" />
    <Output Name="Project" />
  </Action>
  <Action Name="GetProjectWeb" Type="Microsoft.Practices.RecipeFramework.Library.Actions.GetProjectAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ProjectName" RecipeArgument="ProjectWeb" />
    <Output Name="Project" />
  </Action>

  <Action Name="GetProjectTools" Type="Microsoft.Practices.RecipeFramework.Library.Actions.GetProjectAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ProjectName" RecipeArgument="ProjectTools" />
    <Output Name="Project" />
  </Action>
  <Action Name="GetProjectTests" Type="Microsoft.Practices.RecipeFramework.Library.Actions.GetProjectAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ProjectName" RecipeArgument="ProjectTests" />
    <Output Name="Project" />
  </Action>

  <!--ProjectBase-->
  <Action Name="AddProjectReference1" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectBaseData.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectBaseCore.Project" />
  </Action>
  <Action Name="AddProjectReference2" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectBaseMvc.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectBaseCore.Project" />
  </Action>
  <Action Name="AddProjectReference4" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectBaseTools.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectBaseCore.Project" />
  </Action>

  <!--entity-->
  <Action Name="AddProjectReferenceEn1" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectEntity.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectBaseCore.Project" />
  </Action>

  <!--common-->
  <Action Name="AddProjectReferenceCM1" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectCommon.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectBaseCore.Project" />
  </Action>
  <Action Name="AddProjectReferenceCM2" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectCommon.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectBaseMvc.Project" />
  </Action>
  <Action Name="AddProjectReferenceCM3" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectCommon.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectBaseTools.Project" />
  </Action>
  <Action Name="AddProjectReferenceCM4" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectCommon.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectEntity.Project" />
  </Action>

  <!--Data-->
  <Action Name="AddProjectReferenceD1" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectData.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectBaseCore.Project" />
  </Action>
  <Action Name="AddProjectReferenceD3" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectData.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectBaseData.Project" />
  </Action>
  <Action Name="AddProjectReferenceD4" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectData.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectEntity.Project" />
  </Action>
  <Action Name="AddProjectReferenceD5" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectData.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectCommon.Project" />
  </Action>

  <!--Business-->
  <Action Name="AddProjectReferenceB1" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectBusiness.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectBaseCore.Project" />
  </Action>
  <Action Name="AddProjectReferenceB3" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectBusiness.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectBaseMvc.Project" />
  </Action>

  <Action Name="AddProjectReferenceB4" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectBusiness.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectEntity.Project" />
  </Action>
  <Action Name="AddProjectReferenceB5" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectBusiness.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectCommon.Project" />
  </Action>

  <!--AOP-->
  <Action Name="AddProjectReferenceF1" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectAOP.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectBaseCore.Project" />
  </Action>
  <Action Name="AddProjectReferenceF2" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectAOP.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectBaseData.Project" />
  </Action>
  <Action Name="AddProjectReferenceF3" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectAOP.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectBaseMvc.Project" />
  </Action>
  <Action Name="AddProjectReferenceF4" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectAOP.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectEntity.Project" />
  </Action>
  <Action Name="AddProjectReferenceF5" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectAOP.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectCommon.Project" />
  </Action>

  <!-- Mvc -->
  <Action Name="AddProjectReferenceCNTR1" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectMvc.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectBaseCore.Project" />
  </Action>
  <Action Name="AddProjectReferenceCNTR2" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectMvc.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectBaseMvc.Project" />
  </Action>

  <Action Name="AddProjectReferenceCNTR3" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectMvc.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectEntity.Project" />
  </Action>
  <Action Name="AddProjectReferenceCNTR4" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectMvc.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectCommon.Project" />
  </Action>
  <Action Name="AddProjectReferenceCNTR5" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectMvc.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectAOP.Project" />
  </Action>

  <!-- RestApi -->
  <Action Name="AddProjectReferenceAPI1" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectRestApi.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectBaseCore.Project" />
  </Action>
  <Action Name="AddProjectReferenceAPI2" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectRestApi.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectBaseMvc.Project" />
  </Action>

  <Action Name="AddProjectReferenceAPI3" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectRestApi.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectEntity.Project" />
  </Action>
  <Action Name="AddProjectReferenceAPI4" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectRestApi.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectCommon.Project" />
  </Action>
  <Action Name="AddProjectReferenceAPI5" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectRestApi.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectAOP.Project" />
  </Action>

  <!--Test-->
  <Action Name="AddProjectReferenceT01" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectTests.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectBaseCore.Project" />
  </Action>
  <Action Name="AddProjectReferenceT02" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectTests.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectBaseData.Project" />
  </Action>
  <Action Name="AddProjectReferenceT03" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectTests.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectBaseMvc.Project" />
  </Action>
  <Action Name="AddProjectReferenceT04" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectTests.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectBaseTools.Project" />
  </Action>

  <Action Name="AddProjectReferenceT1" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectTests.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectEntity.Project" />
  </Action>
  <Action Name="AddProjectReferenceT2" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectTests.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectCommon.Project" />
  </Action>
  <Action Name="AddProjectReferenceT3" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectTests.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectData.Project" />
  </Action>
  <Action Name="AddProjectReferenceT4" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectTests.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectBusiness.Project" />
  </Action>
  <Action Name="AddProjectReferenceT5" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectTests.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectAOP.Project" />
  </Action>
  <Action Name="AddProjectReferenceT7" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectTests.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectMvc.Project" />
  </Action>
  <Action Name="AddProjectReferenceT8" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectTests.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectWeb.Project" />
  </Action>
  <Action Name="AddProjectReferenceT9" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectTests.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectTools.Project" />
  </Action>
  <Action Name="AddProjectReferenceT10" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectTests.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectRestApi.Project" />
  </Action>

  <!--Web-->
  <Action Name="AddProjectReferenceW01" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectWeb.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectBaseCore.Project" />
  </Action>
  <Action Name="AddProjectReferenceW02" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectWeb.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectBaseMvc.Project" />
  </Action>
  <Action Name="AddProjectReferenceW3" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectWeb.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectCommon.Project" />
  </Action>
  <Action Name="AddProjectReferenceW4" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectWeb.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectEntity.Project" />
  </Action>

  <Action Name="AddProjectReferenceW5" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectWeb.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectTools.Project" />
  </Action>

  <Action Name="AddProjectReferenceWF" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectWeb.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectAOP.Project" />
  </Action>

  <!-- Factory -->
  <Action Name="AddProjectReferenceFA01" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectTools.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectBaseCore.Project" />
  </Action>
  <Action Name="AddProjectReferenceFA02" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectTools.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectBaseMvc.Project" />
  </Action>
  <Action Name="AddProjectReferenceFA03" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectTools.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectBaseData.Project" />
  </Action>
  <Action Name="AddProjectReferenceFA04" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectTools.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectBaseTools.Project" />
  </Action>

  <Action Name="AddProjectReferenceFA1" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectTools.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectEntity.Project" />
  </Action>
  <Action Name="AddProjectReferenceFA2" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectTools.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectCommon.Project" />
  </Action>
  <Action Name="AddProjectReferenceFA3" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectTools.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectData.Project" />
  </Action>
  <Action Name="AddProjectReferenceFA4" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectTools.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectBusiness.Project" />
  </Action>
  <Action Name="AddProjectReferenceFA5" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectTools.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectAOP.Project" />
  </Action>
  <Action Name="AddProjectReferenceFA6" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectTools.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectMvc.Project" />
  </Action>
  <Action Name="AddProjectReferenceFA7" Type="Microsoft.Practices.RecipeFramework.Library.Solution.Actions.AddProjectReferenceAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="ReferringProject" ActionOutput="GetProjectTools.Project" />
    <Input Name="ReferencedProject" ActionOutput="GetProjectRestApi.Project" />
  </Action>

  <!-- Dependency -->

  <Action Name="AddProjectDependencyD2" Type="Microsoft.Practices.RecipeFramework.Library.Actions.AddProjectDependencyAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="Project" ActionOutput="GetProjectWeb.Project" />
    <Input Name="DependencyProject" ActionOutput="GetProjectMvc.Project" />
  </Action>
  <Action Name="AddProjectDependencyD3" Type="Microsoft.Practices.RecipeFramework.Library.Actions.AddProjectDependencyAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="Project" ActionOutput="GetProjectWeb.Project" />
    <Input Name="DependencyProject" ActionOutput="GetProjectData.Project" />
  </Action>
  <Action Name="AddProjectDependencyD4" Type="Microsoft.Practices.RecipeFramework.Library.Actions.AddProjectDependencyAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="Project" ActionOutput="GetProjectWeb.Project" />
    <Input Name="DependencyProject" ActionOutput="GetProjectBusiness.Project" />
  </Action>
  <Action Name="AddProjectDependencyD5" Type="Microsoft.Practices.RecipeFramework.Library.Actions.AddProjectDependencyAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="Project" ActionOutput="GetProjectWeb.Project" />
    <Input Name="DependencyProject" ActionOutput="GetProjectAOP.Project" />
  </Action>

  <Action Name="AddProjectDependencyH1" Type="Microsoft.Practices.RecipeFramework.Library.Actions.AddProjectDependencyAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="Project" ActionOutput="GetProjectCommon.Project" />
    <Input Name="DependencyProject" ActionOutput="GetProjectEntity.Project" />
  </Action>
  <Action Name="AddProjectDependencyH2" Type="Microsoft.Practices.RecipeFramework.Library.Actions.AddProjectDependencyAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="Project" ActionOutput="GetProjectData.Project" />
    <Input Name="DependencyProject" ActionOutput="GetProjectCommon.Project" />
  </Action>
  <Action Name="AddProjectDependencyH3" Type="Microsoft.Practices.RecipeFramework.Library.Actions.AddProjectDependencyAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="Project" ActionOutput="GetProjectBusiness.Project" />
    <Input Name="DependencyProject" ActionOutput="GetProjectData.Project" />
  </Action>
  <Action Name="AddProjectDependencyH4" Type="Microsoft.Practices.RecipeFramework.Library.Actions.AddProjectDependencyAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="Project" ActionOutput="GetProjectAOP.Project" />
    <Input Name="DependencyProject" ActionOutput="GetProjectBusiness.Project" />
  </Action>
  <Action Name="AddProjectDependencyH7" Type="Microsoft.Practices.RecipeFramework.Library.Actions.AddProjectDependencyAction, Microsoft.Practices.RecipeFramework.Library">
    <Input Name="Project" ActionOutput="GetProjectWeb.Project" />
    <Input Name="DependencyProject" ActionOutput="GetProjectMvc.Project" />
  </Action>

  <!-- Solution folders -->

  <Action Name="CreatePocoSolutionFolder"
      Type="ProjectBase.Guidance.Actions.AddSolutionFolderAction, ProjectBase.Guidance"
      NewSolutionFolderName="POCO">
  </Action>
  <Action Name="MoveEntityProjectToSolutionFolder"
             Type="ProjectBase.Guidance.Actions.MoveProjectToSolutionFolderAction, ProjectBase.Guidance"
             DestinationFolder="POCO">
    <Input Name="Project" ActionOutput="GetProjectEntity.Project" />
  </Action>

  <Action Name="CreateDataSolutionFolder"
      Type="ProjectBase.Guidance.Actions.AddSolutionFolderAction, ProjectBase.Guidance"
      NewSolutionFolderName="Project  Data">
  </Action>
  <Action Name="MoveDataProjectToSolutionFolder"
             Type="ProjectBase.Guidance.Actions.MoveProjectToSolutionFolderAction, ProjectBase.Guidance"
             DestinationFolder="Project  Data">
    <Input Name="Project" ActionOutput="GetProjectData.Project" />
  </Action>

  <Action Name="CreateBusinessSolutionFolder"
      Type="ProjectBase.Guidance.Actions.AddSolutionFolderAction, ProjectBase.Guidance"
      NewSolutionFolderName="Project Business">
  </Action>
  <Action Name="MoveBusinessProjectToSolutionFolder"
             Type="ProjectBase.Guidance.Actions.MoveProjectToSolutionFolderAction, ProjectBase.Guidance"
             DestinationFolder="Project Business">
    <Input Name="Project" ActionOutput="GetProjectBusiness.Project" />
  </Action>

  <!-- adjust the results -->
  <Action Name="CollapseAction" Type="ProjectBase.Guidance.Actions.CollapseAction, ProjectBase.Guidance" />

  <Action Name="SetStartProjectAction" Type="ProjectBase.Guidance.Actions.SetStartProjectAction, ProjectBase.Guidance">
    <Input Name="ProjectName" RecipeArgument="ProjectWeb" />
  </Action>

  <!--<Action Name="AddTestSettings" Type="ProjectBase.Guidance.Actions.AddTestSettings, ProjectBase.Guidance">
  </Action>-->
</Actions>